package com.sure.common.datatype;

/**
 * @Desc Java类型和数据库类型匹配信息
 * @Author Sure
 * @Date 2014年12月24日 下午10:20:00
 */
public class MatchType {
	/** @Desc Java数据类型*/
	private String javaType;
	/** @Desc 数据表数据类型*/
	private String dbType;
	/** @Desc 是否匹配可用 0 不匹配  1 推荐匹配  2可以匹配*/
	private int valid;
	
	/**
	 * @Desc 构造方法
	 * @Author Sure
	 * @Date 2014年12月24日 下午10:46:27
	 * @param javaType
	 * @param dbType
	 * @param valid
	 */
	public MatchType(String javaType, String dbType, int valid) {
		this.javaType = javaType;
		this.dbType = dbType;
		this.valid = valid;
	}
	
	public MatchType(String javaType, String dbType) {
		this.javaType = javaType;
		this.dbType = dbType;
	}
	
	/**
	 * @Desc javaType dbType 作为 equals hashCode的基准
	 * @Author Sure
	 * @Date 2014年12月27日 下午5:39:54
	 * @return
	 */
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((dbType == null) ? 0 : dbType.hashCode());
		result = prime * result
				+ ((javaType == null) ? 0 : javaType.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		MatchType other = (MatchType) obj;
		if (dbType == null) {
			if (other.dbType != null)
				return false;
		} else if (!dbType.equals(other.dbType))
			return false;
		if (javaType == null) {
			if (other.javaType != null)
				return false;
		} else if (!javaType.equals(other.javaType))
			return false;
		return true;
	}

	/**
	 * @Desc 获取类型匹配结果
	 * @Author Sure
	 * @Date 2014年12月27日 下午5:40:57
	 * @return
	 */
	public int getValid() {
		return valid;
	}

	/**
	 * @Desc 获取Java类型
	 * @Author Sure
	 * @Date 2014年12月28日 下午12:17:52
	 * @return
	 */
	public String getJavaType() {
		return javaType;
	}

	/**
	 * @Desc 获取数据库类型
	 * @Author Sure
	 * @Date 2014年12月28日 下午12:19:13
	 * @return
	 */
	public String getDbType() {
		return dbType;
	}
	
	
}
